package org.dwpd.controller.message;

import lombok.extern.slf4j.Slf4j;
import org.dwpd.domain.message.RequestParams;
import org.dwpd.domain.common.Result;
import org.dwpd.service.message.SearchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RequestMapping("/search")
@RestController
public class SearchController {

    @Autowired
    private SearchService searchService;

//    /**
//     * 搜索引擎
//     * @param query 查询关键字 || 关键句
//     * @return 根据关键字查询到的所有用户帖
//    @GetMapping("/searchMessageByTerms")
//    public Result searchMessageByTerms(String query) {
//        return searchService.queryMessage(query);
//    }*/

    /**
     * 首页获取用户帖 + 搜索引擎
     * @param params 查询关键字 || 关键句，同时可添加过滤条件
     * @return 按要求查询到的所有用户帖
     */
    @PostMapping("/searchMessages")
    public Result searchMessages(@RequestBody RequestParams params) {
        return searchService.searchMessages(params);
    }

    /**
     * 获取可供选择的分类条件-聚合查询
     * @param params
     * @return
     */
    @PostMapping("/filters")
    public Result getFilters(@RequestBody RequestParams params) {
        return searchService.getFilters(params);
    }

    /**
     * 自动补齐搜索结果
     * @param prefix 前缀
     * @return 符合前缀(包括拼音)的搜索结果
     */
    @GetMapping("/suggestion")
    public Result getSuggestions(@RequestParam("key") String prefix) {
        return searchService.getSuggestions(prefix);
    }
}
